#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <stdlib.h>
//int main()
//{
//	//unsigned int x = -1;
//	//printf("%u ", x);
//	//int x = -1;
//
//	//unsigned int y = 2;
//
//	//printf("%d", x + y);
//	//if (x > y)
//	//{
//	//	printf("x is greater");
//	//} 
//	//else
//	//{
//	//	printf("y is greater");
//	//} 
//
//	//int k = 1 ^ (1 << 31 >> 31);
//	//printf("%d\n", k);
//	//printf("%d\n", 1 << 31);
//	//printf("%d\n", 1 << 31 >> 31);
//
//	int i = 1;
//	sizeof(i++);
//	printf("%d\n", i);
//	return 0;
//}
//00000001
//10000000
//11111111
//00000001
//11111110
//11111101
//10000010

//int findMaxConsecutiveOnes(int* nums, int numsSize) {
//    int count = 0;
//    int max = 0;
//
//    int i = 0;
//    for (i = 0; i < numsSize; i++)
//    {
//        if (nums[i] == 1)
//        {
//            count++;
//        }
//        else
//        {
//            max = count > max ? count : max;
//            count = 0;
//        }
//    }
//
//    return count > max ? count : max;
//}

//int main()
//{
//    int arr[] = { 1,1,0,1,1,1 };
//    int x = findMaxConsecutiveOnes(arr, 6);
//    char c = 'A';
//    if ('0' <= c <= '9') printf("YES");
//    else printf("NO");
//
//    int n = 1001;
//    int ans = 0;
//    for (int i = 1; i <= n; ++i)
//    {
//        ans ^= i % 3;
//    }
//    printf("%d", ans);
//    return 0;
//}

//int main()
//{
//    int sn = 0;
//    scanf("%d", &sn);
//    for (int n = 1; n <= sn; n++)
//    {
//        int* arr = (int*)calloc(n, sizeof(int));
//        int k = 0;
//        int i = 0;
//        for (i = 1; i < n; i++)
//        {
//            if (n % i == 0)
//            {
//                arr[k++] = i;
//            }
//        }
//
//        int sum = 0;
//        for (k = 0; k < n; k++)
//        {
//            if (arr[k] != 0)
//                sum += arr[k];
//            else
//                break;
//        }
//
//        if (sum == n)
//            printf("%d\n", n);
//        free(arr);
//        arr = NULL;
//    }
//    return 0;
//}


void reversion(char* s1, char* s2)
{
    while (s1 < s2)
    {
        char tmp = *s1;
        *s1 = *s2;
        *s2 = tmp;
        s1++;
        s2--;
    }
}
int main()
{
    char arr[10001];
    gets(arr);
    char* end = arr + strlen(arr);
    reversion(arr, end - 1);

    char* left = arr;
    char* right = arr;
    for (; left <= end && right <= end; right++)
    {
        if (!isalpha(*right))
        {
            reversion(left, right - 1);
            left = right + 1;
            *right = ' ';
        }
    }
    printf("%s", arr);
    return 0;
}